Determining color mappings for a color printer

ABSTRACT

A method for deriving a reverse model look-up table whose entries represent device dependent colors as a function of device independent colors, based on a forward model look-up table whose entries represent device independent colors obtained in response to printout of corresponding device dependent colors. For each device independent target color, a binary search of the forward model look-up table is performed so as to locate a cell that contains the device independent target color. The grid points from the forward model look-up table that define the cell are interpolated so as to obtain device dependent colors corresponding to the device independent target color. The device dependent color is stored at the grid point for the reverse model look-up table at a position corresponding to the device independent target color.

BACKGROUND OF THE INVENTION

[0001] 1. Field Of The Invention

[0002] The present invention relates to color printing, and inparticular relates to a fast, iterative method for deriving a look-uptable that represents the color mapping for a printer from deviceindependent colors (such as a color in CIEXYZ or CIELAB color space) toa color in a device dependent color space (such as a color in CMY orCMYK color space).

[0003] 2. Background Of The Invention

[0004] In conventional computer systems that print color images on acolor printer, the precise colors actually printed by the printer arecalculated by the computer using a look-up table. Specifically, thelook-up table is arranged as a three-dimensional grid of cells, witheach entry in the grid representing printer colorant values (such ascyan, magenta, yellow and black colorant values) as a function of somedesired color in a different (usually device independent) color space.Based on a desired color, the computer accesses the look-up table todetermine the printer colorant values. For colors not stored exactly inthe grid, interpolation is conventionally employed so as to determinethe colorant values.

[0005] Recently, there has been increased interest in producing printedcolor images with superior color fidelity, such that the printed imagematches a displayed image or a scanned-in image. To accomplish colormatching, it has become customary to employ a two-step procedure. In thefirst step, the scanned-in or displayed image, which typically is storedin device dependent color space such as RGB color space, is transformedinto a device independent color space such as CIEXYZ or CIELAB colorspace. This first transformation allows for compensation and calibrationof device dependent characteristics, such as phosphor spectralcharacteristics or spectral sensitivity characteristics of a scanner. Inthe second step, the device independent colors are transformed intoprinter device dependent colors, such as CMY or CMYK colors. This secondtransformation allows for compensation of printer characteristics.

[0006] One difficulty with this approach is the determination of entriesfor the look-up table that gives the transformation from deviceindependent colors to device dependent colors for the printer. In thepast, this look-up table was derived once at the factory, based onempirical measurements of a wide variety of color patches printed atfixed colors in the device dependent color space. A single derivation ofa look-up table, however, does not allow for post-factory compensationbased on effects such as printer aging, selection of different inks withdifferent spectral characteristics, selection of different print media,and other effects which change printout characteristics. Although it ispossible to recalibrate the printer by printout of new color patches andby empirical measurement of the resulting device independent colors, itis still difficult, tedious and time consuming to derive a new printerlook-up table, even though such derivation is ordinarily performed by acomputer.

SUMMARY OF THE INVENTION

[0007] It is an object of the invention to provide a fast iterativemethod for deriving a printer look-up table, with entries in the look-uptable corresponding to device dependent colors as a function of deviceindependent colors.

[0008] The look-up table is derived from empirical measurements indevice independent coordinates of predetermined device dependent colorpatches. The empirical measurements are preferably stored in a look-uptable, with the look-up table commonly being referred to in the art asthe “forward model”. Accordingly, the look-up table that is derived bythe present invention from the forward model look-up table willhereinafter be referred to as the “reverse model” look-up table.

[0009] According to one aspect of the invention, to derive an entry inthe reverse model look-up table based on a target color in deviceindependent coordinates, a binary search of the forward model look-uptable is performed so as to locate a cell that contains the deviceindependent target color. The grid points that define the cell in theforward model look-up table are then identified, and entries from thegrid points in the forward model look-up table are interpolated so as toobtain a device dependent color corresponding to the device independenttarget color. The device dependent color is thereafter stored at thegrid point for the device independent target color of the reverse modellook-up table.

[0010] Preferably, interpolation according to the invention istetrahedral so as to minimize color discontinuities and color gradienteffects between adjacent cells of the forward model look-up table.

[0011] It is also preferable to perform the binary search of the forwardmodel look-up table with iterated steps that start from a starting colorin device dependent color space. The iterated steps preferably include adivision of the device independent color space into multiple regionsdefined by device independent colors corresponding to small variationsfrom the starting color in device dependent color space, a determinationof which of the multiple regions contains the device independent targetcolor, and an update of the starting color based on which regioncontains the device independent target color. In particular, todetermine which of the multiple regions contains the device independenttarget color, it is preferred to obtain dot products for each normalplane vector that defines the multiple regions with the vector thatdefines the difference between the target color and the deviceindependent color corresponding to the starting color, and thereafter todetermine the region in accordance with which of the dot products yieldspositive values and which yields negative values.

[0012] Because the invention performs a binary search only for thepurpose of locating the cell that contains the device independent targetcolor, the binary search is quick and can be performed with relativeease. For example, in a situation where the forward model look-up tableis a 9×9×9 uniform grid in CMY device dependent colors, the binarysearch can locate the cell for a device independent target color withinabout three and at most four iterations of the binary search. Moreover,since interpolation is performed using the grid points for the cell solocated, high color fidelity for the reverse model look-up table isobtained with good continuity and color gradient smoothness.

[0013] This brief summary has been provided so that the nature of theinvention may be understood quickly. A more complete understanding ofthe invention can be obtained by reference to the following detaileddescription of the preferred embodiment thereof in connection with theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is a representational view of a computer system in whichthe present invention may be utilized.

[0015]FIG. 2 is a detailed block diagram showing the internalarchitecture of the computer system shown in FIG. 1.

[0016]FIG. 3 is a representational view of color transformations thatcan occur when printing images using the computer system shown in FIG.1.

[0017]FIG. 4 is a representational view for explaining derivation of areverse model look-up table from a forward model look-up table accordingto the invention.

[0018]FIG. 5 is a flowchart for explaining derivation of a reverse modellook-up table from a forward model look-up table according to theinvention.

[0019]FIGS. 6A and 6B are representational views for explaining a binarysearch of a forward model look-up table according to the invention.

[0020]FIG. 7 is a flowchart for explaining a binary search of a forwardmodel look-up table according to the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0021]FIG. 1 is a representational view of a computer system in whichthe present invention may be utilized. Computer system 1 may be aMacintosh, PC-compatible, or other type of computer having an operatingsystem such as Microsoft® Windows®. Provided with computer system 1 aredisplay 2 which may be a color monitor, keyboard 4 for entering usercommands, and pointing device 5, such as a mouse, for pointing to andfor manipulating graphical user interfaces and other objects displayedon display 2.

[0022] Computer system 1 also includes a mass storage device such asfixed disk 6 for storing computer-executable process steps for imageprocessing applications, process steps for generating a forward modellook-up table, process steps for determining a reverse model look-uptable according to the invention, and other application programs anddata. Such storage may also be provided by other storage media such asCD-ROM (not shown).

[0023] Printer 7 is provided for outputting images such as images fromimage processing applications, scanned-in images and the like. Printer 7preferably is a color printer which prints images using a combination ofdifferently-colored inks, such as cyan, magenta and yellow inks. Printer7 optionally uses black ink in addition to these differently-coloredinks.

[0024] Scanner 11 is an image acquisition device that preferably also isincluded with computer system 1. Scanner 11 may be used to scandocuments for output by printer 7 or to scan documents for processing byimage processing applications executing within computer system 1. Ofcourse, images may be input into computer system 1 using other imageacquisition devices, such as a film adapter unit for scanner 11, adigital camera or the like. Images also may be input into computersystem 1 from a variety of other sources, such as from a network throughan unshown network interface.

[0025] It should be understood that although a programmablegeneral-purpose computer is shown in FIG. 1, a dedicated computerterminal or other type of data processing equipment can embody thepresent invention.

[0026]FIG. 2 is a detailed block diagram showing the internalarchitecture of computer system 1. As shown in FIG. 2, computer system 1includes central processing unit (CPU) 13, which interfaces withcomputer bus 14. Also interfacing with computer bus 14 are scannerinterface 15, printer interface 16, display interface 20, main randomaccess memory (RAM) 21, fixed disk 6, keyboard interface 22, and mouseinterface 24.

[0027] Main memory 21 interfaces with computer bus 14 so as to provideRAM storage to CPU 13 during execution of software applications. Morespecifically, CPU 13 loads process steps from a storage medium such asfixed disk 6 into main memory 21. CPU 13 then executes the storedprocess steps from main memory 21 in order to execute the applications.Data such as image files 32, forward model look-up table 34, reversemodel look-up table 36, and the like can be stored in main memory 21,where the data can be accessed by CPU 13 during execution of the processsteps.

[0028] As also shown in FIG. 2, fixed disk 6 typically containsoperating system 30, device drivers 31, image files 32, and imageprocessing applications 33. Also stored on fixed disk 6 are processsteps for an application 35 to generate a forward model look-up table,and process steps for an application 37 to determine a reverse modellook-up table. It should be noted that device drivers 31 can form partof operating system 30, and that forward model look-up table 34 andreverse model look-up table 36 can be embedded in a printer driverincluded in device drivers 31. Forward model look-up table generationapplication 35 and reverse model look-up table determination application37 can be combined into a single application program. The look-up tablesand the look-up table application programs are explained in more detailbelow.

[0029] Images provided to computer system 1 by scanner 11 throughscanner interface 15 can be manipulated with image processingapplications 33 running on computer system 1. The images then can beoutput to printer 7 from the image processing applications through aprinter driver. Alternatively, the images can be output from scanner 11to printer 7 through a printer driver, without being processed by imageprocessing applications 33.

[0030] Images output by image processing applications 33 and scanner 11typically are defined in a color space corresponding to display 2 orscanner 11, for example RGB color space. However, printer 7 typicallygenerates printed output based on images defined in terms of thedifferently colored inks used by printer 7. Thus, the images output toprinter 7 should be defined in a device dependent color spacecorresponding to printer 7, for example CMY color space or CMYK colorspace. Thus, the printer driver must transform images from imageprocessing applications 33 or scanner 11 from a device dependent colorspace for a display or a scanner to a device dependent color space for aprinter.

[0031]FIG. 3 is a representational view for illustrating such atransformation. Typically, an image in device dependent color space 40corresponding to a display or a scanner is first transformed into deviceindependent color space 41 such as CIELAB or CIEXYZ color space. Thisfirst transformation allows for compensation and calibration of devicedependent characteristics, such as phosphor spectral characteristics ofa display or spectral sensitivity characteristics of a scanner. Theimage in device independent color space 41 is then transformed intodevice dependent color space 42 corresponding to printer 7, such as CMYor CMYK color space. This second transformation allows for compensationof printer characteristics.

[0032] The foregoing transformations preferably are implemented usinglook-up tables. Conventionally, these look-up tables are derived once atthe factory, based on empirical measurements of input colors. Forexample, the reverse model look-up table for transforming an image indevice independent color space to device dependent color space can bederived from empirical measurements of a wide variety of color patchesprinted at fixed colorant values in the device dependent color space(i.e., the forward model). A one-time derivation of the reverse modellook-up table, however, does not allow for compensation based on effectssuch as printer aging, selection of different inks with differentspectral characteristics, selection of different print media, and othereffects which change printout characteristics. The present inventionaddresses this need by providing a system for rapid re-derivation of thereverse model look-up table that transforms from a device independentcolor space to a device dependent color space based on empiricalmeasurements in a device independent color space of predetermined devicedependent color patches.

[0033] According to the present invention, the forward model look-uptable is preferably formed by forward model look-up generator 35, whichprints a wide variety of color patches using printer 7, and then scansand converts the resulting color patch values. Preferably, all possiblecombination of 9 equally-spaced values for each of cyan, magenta andyellow are printed, yielding 9×9×9=729 color patches. It is alsopossible to include 9 equally-spaced values for black, which would yield9×9×9×9=6561 color patches. The color patches are then scanned byscanner 11, yielding a color patch value for each color patch. Usually,the color patch values will be scanned in the scanner's device dependentcolor space, such as RGB. Accordingly, forward model look-up generator35 converts these device dependent color values from scanner space to adevice independent space (such as CIELAB or CIEXYZ) using known scanningcharacteristics of scanner 11. Then, forward model look-up tablegeneration application 35 builds the forward model look-up table, byinserting at each device dependent (CMY or CMYK) grid point thecorresponding color value (in device independent space) of the colorpatch actually printed for the grid point. The present invention usesthis forward model look-up table to derive a reverse model look-up tablesuch as reverse model look-up table 36. This derivation is preferablyperformed by reverse model look-up table determination application 37,although the derivation can be performed by a printer driver or someother application program.

[0034]FIG. 4 is a representational view for explaining derivationaccording to the invention of a reverse model look-up table from aforward model look-up table, and FIG. 5 is a flow diagram showing storedprocess steps by which the reverse model is derived from the forwardmodel. Briefly, according to the invention, a reverse model look-uptable is derived based on a forward model look-up table. The entries inthe reverse model look-up table represent device dependent colors as afunction of device independent colors. The entries in the forward modellook-up table represent device independent colors as a function ofprintout of corresponding device dependent color components. Both theforward model look-up table and the reverse model look-up table comprisea grid of cells in their respective color spaces with entries at eachgrid point of the grid. The derivation method according to the inventioncomprises the following steps to determine an entry in the reverse modellook-up table for a device independent target color. First, a binarysearch of the forward model look-up table is performed to locate a cellthat contains the device independent target color. Second, entries fromthe forward model look-up table at grid points that define the cell areinterpolated so as to obtain a device dependent color corresponding tothe device independent target color. Third, the device dependent coloris stored at the grid point of the reverse model look-up table for thedevice independent target color.

[0035] In order to simplify the following explanation of the derivationmethod according to the invention, the method is initially explainedwith respect to two-dimensional color spaces. In other words, thederivation method is initially explained for colors that are eachdefined with two color values. Thereafter, expansion of the methodaccording to the invention to higher-order color spaces (e.g.,three-dimensional color spaces) is explained.

[0036] In FIG. 4, device dependent color space 60 is depicted with axesfor two device dependent color values, namely C and M. Likewise, deviceindependent color space 61 is depicted with axes for two deviceindependent color values, namely U and V. Forward model look-up table 35maps each grid point (represented by intersections of dotted lines) indevice dependent color space 60 to a value in device independent colorspace 61. Likewise, reverse model look-up table 36 maps each grid pointin device independent color space 61 to a value in device dependentcolor space 60. Each cell in one of the look-up tables is defined by thecorner grid points for that cell.

[0037] In both of these models, a color defined by a grid point in oneof the color spaces does not necessarily map to a color defined by agrid point in the other color space. Likewise, lines representingconstant color value in one color space typically map to curves in theother color space. For example, as shown in FIG. 4, the linesrepresenting constant color values of C═C₀ and M═M₀ in device dependentcolor space 60 are mapped by the forward model into curves in deviceindependent color space 61. As also shown in FIG. 4, the colorrepresented by the grid point (C₀, M₀) in device dependent color space60 does not map to a grid point at (U₀, V₀) in device independent colorspace 61.

[0038] According to the invention, forward model look-up table 35 is alook-up table obtained through empirical measurements. Thus, for anygiven grid point in device dependent color space 60, forward modellook-up table 35 contains a color defined by a U color value and a Vcolor value. However, what is needed for generating a printout isreverse model look-up table 36 which maps grid points in deviceindependent color space 61 to colors defined in device dependent colorspace 60.

[0039] In order to derive reverse model look-up table 36, devicedependent color values must be entered for each grid point in deviceindependent color space 61. The derivation of these grid point valuesaccording to the invention, for a target color defined by a grid point(U_(t), V_(t)) in device independent color space 61, is now explained.

[0040]FIG. 5 is a flowchart for explaining this derivation of devicedependent color values. First, in step S501, a target color in deviceindependent color space 61 is identified, for example (U_(t), V_(t)) Thetarget color lies exactly on a grid point in device independent colorspace 61. Then, in step S502, a binary search of forward model look-uptable 35 is performed so as to locate a cell that contains the deviceindependent target color. As discussed above, each cell in forward modellook-up table 35 corresponds to one of the grid cells in devicedependent color space 60. Thus, for example, if the binary searchindicates that the device dependent color corresponding to the targetdevice independent color is P_(t), then the cell located by the binarysearch is defined by the grid points P_(a), P_(b), P_(c) and P_(d) indevice dependent color space 60. Note that it is not necessary toidentify the exact position of point P_(t); rather, all that isordinarily needed is the identity of the cell in which it lies, togetherwith the grid points that define the cell. The preferred embodiment ofthe binary search so as to identify the cell is explained in more detailbelow with reference to FIGS. 6A, 6B and 7.

[0041] Once the cell that contains the target color has been located,flow proceeds to step S503. In step S503, the device dependent colorvalues for the grid points are interpolated so as to obtain a devicedependent color (i.e., C and M color values) corresponding to the deviceindependent target color (i.e., target U and V color values). Afterinterpolation, the device dependent color values are stored in thereverse model (step S504). The device dependent color values are storedat the grid point of reverse model look-up table 36 that corresponds tothe device independent target color (U_(t), V_(t)).

[0042] The foregoing operation is repeated for each of the grid pointsin device independent color space 61, thereby determining all of theentries for reverse model look-up table 36.

[0043] In the preferred embodiment, device dependent color space 60 anddevice independent color space 61 are three-dimensional. For example,device dependent color space 60 is a CMY color space, and deviceindependent color space 61 is a CIELAB or a CIEXYZ color space. In thiscase, the foregoing determination of a reverse model proceeds exactly asabove, except that each cell is defined by eight grid points in devicedependent color space 60, and interpolation preferably is tetrahedralinterpolation.

[0044] The device dependent color space can be expanded to fourdimensions by performing black generation and/or undercolor removal onthe CMY colors so as to obtain a black (K) color value. In such a case,the binary search is still performed in CMY color space, before theblack generation and/or undercolor removal.

[0045]FIGS. 6A and 6B are representational views for explaining a binarysearch of forward model look-up table 35 according to the invention.Briefly, according to the invention, the binary search is performedthrough iterated steps starting from a starting color value in devicedependent color space. First, the device independent color space isdivided into multiple regions defined by device independent colorscorresponding to small variations from the starting color in devicedependent color space. Second, the region that contains the deviceindependent target color is identified. Third, the starting color valuein device dependent color space is updated based on which regioncontains the device independent target color. These steps are iterateduntil the iterated value of the starting color value converges into asingle cell.

[0046] Shown in FIG. 6A is device independent color space 61, whichincludes point P₀ that corresponds to grid point (C₀, M₀) in devicedependent color space 60, and thus is an entry in forward model look-uptable 35. Grid point (C₀, M₀) is a guess for a starting color value fora device dependent color used in the binary search. As explained below,the initial value for the starting color value can be the midpoint ofdevice dependent color space.

[0047] The points P₀−−, P₀+−, P₀−+ and P₀++ are points in deviceindependent color space 61 that correspond to grid points removed fromgrid point (C₀, M₀) by a small distance Δ in device dependent colorspace 60. In the preferred embodiment, Δ corresponds to the distancebetween grid points in device dependent color space 60. In particular,these points are determined by applying forward model look-up table 35to the following grid points in device dependent color space 60:

[0048] (C₀+Δ, M₀+Δ) for P₀++,

[0049] (C₀−Δ, M₀+Δ) for P₀−+,

[0050] (C₀+Δ, M₀−Δ) for P₀+−, and

[0051] (C₀−Δ, M₀−Δ) for P₀−−.

[0052] Also shown in FIG. 6A is target color (U_(t), V_(t)) in deviceindependent color space 61, and vector V from P₀ to target color (U_(t),V_(t)). The object is to derive C and M values that correspond to targetcolor (U_(t), V_(t)), and to store those values in the reverse modellook-up table at grid point (U_(t), V_(t)) As previously explained, theC and M values are derived by a binary search of the forward modellook-up table (which is the present topic of explanation) to determinethe cell in which the target color lies, followed by interpolation ofthe grid points that define the cell.

[0053] Lines L₁, L₂, L₃ and L₄ in FIG. 6A connect P₀ with each of P₀++,P₀−+, P₀+− and P₀−−. In particular, line L₁ connects points P₀ and P₀++;line L₂ connects points P₀ and P₀−+; line L₃ connects points P₀ andP₀+−; and line L₄ connects points P₀ and P₀−−. Each of these lines has anormal vector N associated therewith. N₁ is associated with line L₁, N₂with L₂, N₃ with L₃, and N₄ with L₄.

[0054] As shown in FIG. 6A, lines L₁, L₂, L₃ and L₄ divide deviceindependent color space 61 into four regions R₁, R₂, R₃ and R₄. Thedevice independent target color (U_(t), V_(t)) and vector V lie withinone of these four regions. The identity of the region in which thetarget color lies provides information about the device dependent colorthat maps to the target color. In particular, each of these regions indevice independent color space 61 is characterized by a condition fordevice dependent colors that map to that region. These conditions are asfollows:

[0055] Colors that map to region R₁ have C≧C₀.

[0056] Colors that map to region R₂ have M≦M₀.

[0057] Colors that map to region R₃ have M≧M₀.

[0058] Colors that map to region R₄ have C≦C₀.

[0059]FIG. 6B shows point P₁ which corresponds to a different grid pointin device dependent color space 60, namely (C₁, M₁). P₁ is determinedfrom (C₁, M₁) by using forward model look-up table 35. Arrayed aboutpoint P₁ are points P₁++, P₁−+, P₁+− and P₁−−. These points also aredetermined using forward model look-up table 35, from grid points indevice dependent color space 60 arrayed about point P₁ in a similarfashion as the points arrayed about point P₀ in FIG. 6A.

[0060]FIG. 7 is a flowchart for explaining how the foregoing points,lines and regions of device independent color space 61 are used toperform a binary search according to the invention. In step S701, aguess is made as to a starting value for a device dependent colorcorresponding to the device independent target color with color values(U_(t), V_(t)) Assuming that the color values in device dependent colorspace 60 range from 0 to 1, the initial guess is selected as (C₀,M₀)=(0.5, 0.5). The upper and lower bounds of the portion of the devicedependent color space under consideration are also determined. In thiscase, the bounds are initially 0≦C≦1 and 0≦M≦1.

[0061] In step S702, device independent color space 61 is divided intoregions based on the starting color value and small variations from thestarting color value. In particular, points P₀++, P₀−+, P₀+− and P₀−− indevice independent color space 61 are determined as described above withreference to FIG. 6A. Then, lines L₁, L₂, L₃ and L₄ are determined fromthese points, and device independent color space 61 is divided intoregions R₁, R₂, R₃, and R₄ using these lines.

[0062] Next, in step S703, the region of device independent color space61 in which the target color (U_(t), V_(t)) resides is determined. Thisdetermination preferably is made by taking the dot product of vector Vwith the normal vectors N₁, N₂, N₃ and N₄ corresponding to lines L₁, L₂,L₃ and L₄, respectively. A positive dot product indicates that vector Vis on the same side of a line as the normal vector for that line, and anegative dot product indicates that vector V is on the opposite side ofthe line. Thus, depending on the signs of the dot products, the regionin which vector V lies can be determined.

[0063] For example, if the normal vectors are determined using theconventional right-hand rule, then the normal vectors extend in thedirections of vectors N₁, N₂, N₃ and N₄ shown in FIG. 6A. In this case,the following rules can be used to determine the region in which vectorV lies:

[0064] If N₁·V is positive and N₂·V is negative, then V lies in regionR₁.

[0065] If N₂·V is positive and N₄·V is negative, then V lies in regionR₂.

[0066] If N₃·V is positive and N₁·V is negative, then V lies in regionR₃.

[0067] If N₄·V is positive and N₃·V is negative, then V lies in regionR₄.

[0068] In the example shown in FIG. 6A, V lies in region R₃. Because Vlies in region R₃, it is known that the M value in device dependentcolor space 60 corresponding to (U_(t), V_(t)) is greater than or equalto M₀. Accordingly, in step S704, the starting value for the color indevice dependent color space 60 is updated to lie between the currentstarting value and the upper bound for M color values underconsideration. In addition, the lower bound for M color values underconsideration is updated to be equal to M₀. For example, using thenumerical example above wherein C₀=0.5 and M₀=0.5, the updated startingvalue for M is 0.75, and the new bounds for M are 0.5≦M≦1.

[0069] In a similar fashion, if it is determined that vector V residedin region R₂, then it is known that the M for point (U_(t), V_(t)) isless than M₀. Accordingly, the starting value for M is updated to liemidway between the lower bound for M and the current starting value forM, and the upper bound for M is updated to be equal to M₀. Likewise, ifV resides in R₁ or R₄, the starting value for C and the bounds for C areupdated accordingly.

[0070] In step S705, it is determined if the updated starting value fora device dependent color corresponding to (U_(t), V_(t)) has convergedinto a single cell in device dependent color space corresponding to(U_(t), V_(t)). In particular, it is determined if the cell whichcontains the updated starting value is the same as the cell whichcontains the previous starting value. Alternatively, the updatedstarting value can be mapped to a point in the device independent colorspace using the forward model. Then, it can be determined if the mappedpoint is sufficiently close (i.e., within a predetermined limit) to(U_(t), V_(t)) for the given circumstances.

[0071] In the example illustrated in FIG. 6B, the starting value hasbeen updated to (C₁, M₁), which maps to point P₁ in independent colorspace 61. If (C₁, M₁) does not lie in the same cell as (C₀, M₀) indevice dependent color space 60, or alternatively if P₁ is notsufficiently close to target color (U_(t), V_(t)), then flow returns tostep S702 and device independent color space 61 is again divided. Thedivision of device independent color space 61 about point P₁ isillustrated in FIG. 6B. The region containing the vector from P₁ to(U_(t), V_(t)) is determined, and the starting value and bounds for Cand M are again updated. The updated values are checked to see if thenew starting value is close enough to the target color, in which casethe new starting value is provided as the result of the binary search.Otherwise, the steps are repeated.

[0072] In the case that device dependent color space 60 and deviceindependent color space 61 are three-dimensional, the device independentcolor space is divided into six regions using twelve planes. Each planeis defined by two lines, and each line is defined by a point mapped froma starting value in device dependent color space, such as P_(x) mappedfrom (C_(x), M_(x), Y_(x)), to points mapped from points close to thestarting value. For P_(x) mapped from (C_(x), M_(x), Y_(x)), the pointsused to define the lines are as follows:

[0073] (C_(x)+Δ, M_(x)+Δ, Y_(x)+Δ) for P_(x)+++,

[0074] (C_(x)+Δ, M_(x)+Δ, Y_(x)−Δ) for P_(x)++−,

[0075] (C_(x)+Δ, M_(x)−Δ, Y_(x)+Δ) for P_(x)+−+,

[0076] (C_(x)+Δ, M_(x)−Δ, Y_(x)−Δ) for P_(x)+−−,

[0077] (C_(x)−Δ, M_(x)+Δ, Y_(x)+Δ) for P_(x)−++,

[0078] (C_(x)−Δ, M_(x)+Δ, Y_(x)−Δ) for P_(x)−+−,

[0079] (C_(x)−Δ, M_(x)−Δ, Y_(x)+Δ) for P_(x)−−+, and

[0080] (C_(x)−Δ, M_(x)−Δ, Y_(x)−Δ) for P_(x)−−−,

[0081] Each of the twelve planes is defined using two lines betweenpoint P_(x) and two of the these points, as follows:

[0082] PL1 is defined using P_(x)−−− and P_(x)−−+.

[0083] PL2 is defined using P_(x)−−− and P_(x)−+−.

[0084] PL3 is defined using P_(x)−−− and P_(x)+−−.

[0085] PL4 is defined using P_(x)−−+ and P_(x)−++.

[0086] PL5 is defined using P_(x)−−+ and P_(x)+−+.

[0087] PL6 is defined using P_(x)−+− and P_(x)−++.

[0088] PL7 is defined using P_(x)−+− and P_(x)++−.

[0089] PL8 is defined using P_(x)+−− and P_(x)+−+.

[0090] PL9 is defined using P_(x)+−− and P_(x)++−.

[0091] PL10 is defined using P_(x)++− and P_(x)+++.

[0092] PL11 is defined using P_(x)+−+ and P_(x)+++

[0093] PL12 is defined using P_(x)−++ and P_(x)+++

[0094] The normal plane vectors for each of the planes is defined inaccordance with conventional mathematical practices. In particular, thecross product of the two lines defining each plane results in the normalplane vector for that plane.

[0095] Using these twelve planes, the six regions that divide the deviceindependent color space about P_(x) are defined as follows:

[0096] R1 is bounded by PL8, PL9, PL10 and PL11.

[0097] R2 is bounded by PL1, PL2, PL4 and PL6.

[0098] R3 is bounded by PL6, PL7, PL10 and PL12.

[0099] R4 is bounded by PL1, PL3, PL5 and PL8.

[0100] R5 is bounded by PL4, PL5, PL11 and PL12.

[0101] R6 is bounded by PL2, PL3, PL7 and PL9.

[0102] The conditions for colors in device dependent color space thatmap to each of these regions in device independent color space are asfollows:

[0103] Colors that map to region R1 have C≧C_(x).

[0104] Colors that map to region R2 have C≦C_(x).

[0105] Colors that map to region R3 have M≧M₁.

[0106] Colors that map to region R4 have M≦M_(x).

[0107] Colors that map to region R5 have Y≧Y_(x).

[0108] Colors that map to region R6 have Y≦Y_(x).

[0109] Using the foregoing region and normal plane vector definitionsand conditions, the binary search in three dimensions proceeds in thesame manner as in the two dimensional case.

[0110] It should be noted that while the present invention is describedherein with respect to deriving a reverse model look-up table fortransforming colors in a device independent color space to a devicedependent color space for a printer, the invention is equally applicableto other transformations. In particular, the invention is applicable inany situation wherein a model (possibly based on a set of empiricalmeasurements) exists for a forward model transformation from a firstcolor space to a second color space, and a look up table for a reversemodel that is the inverse of the forward model transformation is needed.

[0111] The invention has been described with respect to a particularillustrative embodiment. It is to be understood that the invention isnot limited to the above described embodiment and that various changesand modifications may be made by those of ordinary skill in the artwithout departing from the spirit and scope of the invention.

What is claimed is:
 1. A method for deriving a reverse model look-uptable whose entries represent device dependent colors as a function ofdevice independent colors, based on a forward model look-up table whoseentries represent device independent colors obtained in response toprintout of corresponding device dependent color components, wherein theforward model and the reverse model look-up tables both comprise a gridof cells in their respective color spaces with entries at each gridpoint of the grid, the method comprising the following steps todetermine an entry in the reverse model look-up table for a deviceindependent target color: performing a binary search of the forwardmodel look-up table to locate a cell that contains the deviceindependent target color; interpolating entries from the forward modellook-up table at grid points that define the cell so as to obtain devicedependent colors corresponding to the device independent target color;and storing the device dependent color at the grid point of the reversemodel look-up table for the device independent target color.
 2. A methodaccording to claim 1, wherein said interpolating step comprisestetrahedral interpolation.
 3. A method according to claim 1, whereinsaid step of performing a binary search comprises iterated stepsstarting from a starting color value in device dependent color space,the iterated steps comprising: dividing the device independent colorspace into multiple regions defined by device independent colorscorresponding to small variations from the starting color in devicedependent color space; determining which of the multiple regionscontains the device independent target color; and updating the startingcolor value based on which region contains the device independent targetcolor.
 4. A method according to claim 3, wherein said step ofdetermining which of the multiple regions contains the deviceindependent target color comprises the steps of obtaining dot productsfor each normal plane vector that defines the multiple regions with thevector that defines the difference between the target color and thedevice independent color corresponding to the starting color, anddetermining which region contains the device independent target color inaccordance with which of the dot products yields positive values andwhich yields negative values.
 5. A method according to claim 1, whereinthe device independent color space is CIEXYZ or CIELAB color space, andwherein the device dependent color space is CMY or CMYK color space. 6.A method according to claim 1, wherein the forward model look-up tableis derived by printing color patches corresponding to predefined colorsin device dependent color space, and measuring the colors of the patchesin device independent color space.
 7. A method according to claim 1,wherein the predefined colors are in CMY or CMYK space, and the colorsare measured in CIEXYZ or CIELAB space.
 8. An apparatus for deriving areverse model look-up table whose entries represent device dependentcolors as a function of device independent colors, based on a forwardmodel look-up table whose entries represent device independent colorsobtained in response to printout of corresponding device dependent colorcomponents, wherein the forward model and the reverse model look-uptables both comprise a grid of cells in their respective color spaceswith entries at each grid point of the grid, the apparatus comprisingthe following means to determine an entry in the reverse model look-uptable for a device independent target color: search performing means forperforming a binary search of the forward model look-up table to locatea cell that contains the device independent target color; interpolatingmeans for interpolating entries from the forward model look-up table atgrid points that define the cell so as to obtain device dependent colorscorresponding to the device independent target color; and storing meansfor storing the device dependent color at the grid point of the reversemodel look-up table for the device independent target color.
 9. Anapparatus according to claim 8, wherein said interpolating meanscomprises means for performing tetrahedral interpolation.
 10. Anapparatus according to claim 8, wherein said search performing meanscomprises means for performing iterated steps starting from a startingcolor value in device dependent color space, the iterated stepscomprising: dividing the device independent color space into multipleregions defined by device independent colors corresponding to smallvariations from the starting color in device dependent color space;determining which of the multiple regions contains the deviceindependent target color; and updating the starting color value based onwhich region contains the device independent target color.
 11. Anapparatus according to claim 10, wherein said determining meanscomprises means for obtaining dot products for each normal plane vectorthat defines the multiple regions with the vector that defines thedifference between the target color and the device independent colorcorresponding to the starting color, and determining which regioncontains the device independent target color in accordance with which ofthe dot products yields positive values and which yields negativevalues.
 12. An apparatus according to claim 8, wherein the deviceindependent color space is CIEXYZ or CIELAB color space, and wherein thedevice dependent color space is CMY or CMYK color space.
 13. Anapparatus according to claim 8, wherein the forward model look-up tableis derived by printing color patches corresponding to predefined colorsin device dependent color space, and measuring the colors of the patchesin device independent color space.
 14. An apparatus according to claim8, wherein the predefined colors are in CMY or CMYK space, and thecolors are measured in CIEXYZ or CIELAB space.
 15. Computer-executableprocess steps stored on a computer-readable medium, the computerexecutable process steps to derive a reverse model look-up table whoseentries represent device dependent colors as a function of deviceindependent colors, based on a forward model look-up table whose entriesrepresent device independent colors obtained in response to printout ofcorresponding device dependent color components, wherein the forwardmodel and the reverse model look-up tables both comprise a grid of cellsin their respective color spaces with entries at each grid point of thegrid, the computer-executable process steps comprising the followingcodes to determine an entry in the reverse model look-up table for adevice independent target color: code to perform a binary search of theforward model look-up table to locate a cell that contains the deviceindependent target color; code to interpolate entries from the forwardmodel look-up table at grid points that define the cell so as to obtaindevice dependent colors corresponding to the device independent targetcolor; and code to store the device dependent color at the grid point ofthe reverse model look-up table for the device independent target color.16. Computer-executable process steps according to claim 15, whereinsaid code to interpolate comprises code to perform tetrahedralinterpolation.
 17. Computer-executable process steps according to claim15, wherein said code to perform a binary search comprises code toperform iterated steps starting from a starting color value in devicedependent color space, the computer-executable process steps comprising:code to divide the device independent color space into multiple regionsdefined by device independent colors corresponding to small variationsfrom the starting color in device dependent color space; code todetermine which of the multiple regions contains the device independenttarget color; and code to update the starting color value based on whichregion contains the device independent target color. 18.Computer-executable process steps according to claim 17, wherein saidcode to determine comprises code to obtain dot products for each normalplane vector that defines the multiple regions with the vector thatdefines the difference between the target color and the deviceindependent color corresponding to the starting color, and code todetermine which region contains the device independent target color inaccordance with which of the dot products yields positive values andwhich yields negative values.
 19. Computer-executable process stepsaccording to claim 15, wherein the device independent color space isCIEXYZ or CIELAB color space, and wherein the device dependent colorspace is CMY or CMYK color space.
 20. Computer-executable process stepsaccording to claim 15, wherein the forward model look-up table isderived by codes to print color patches corresponding to predefinedcolors in device dependent color space, and to measure the colors of thepatches in device independent color space.
 21. Computer-executableprocess steps according to claim 15, wherein the predefined colors arein CMY or CMYK space, and the colors are measured in CIEXYZ or CIELABspace.
 22. A computer-readable medium which stores computer-executableprocess steps, the computer-executable process steps to derive a reversemodel look-up table whose entries represent device dependent colors as afunction of device independent colors, based on a forward model look-uptable whose entries represent device independent colors obtained inresponse to printout of corresponding device dependent color components,wherein the forward model and the reverse model look-up tables bothcomprise a grid of cells in their respective color spaces with entriesat each grid point of the grid, the computer-executable process stepscomprising the following steps to determine an entry in the reversemodel look-up table for a device independent target color: a searchperforming step to perform a binary search of the forward model look-uptable to locate a cell that contains the device independent targetcolor; an interpolating step to interpolate entries from the forwardmodel look-up table at grid points that define the cell so as to obtaindevice dependent colors corresponding to the device independent targetcolor; and a storing step to store the device dependent color at thegrid point of the reverse model look-up table for the device independenttarget color.
 23. A computer-readable medium according to claim 22,wherein said interpolating step comprises tetrahedral interpolation. 24.A computer-readable medium according to claim 22, wherein said searchperforming step comprises iterated steps starting from a starting colorvalue in device dependent color space, the computer-executable processsteps comprising: a dividing step to divide the device independent colorspace into multiple regions defined by device independent colorscorresponding to small variations from the starting color in devicedependent color space; a determining step to determine which of themultiple regions contains the device independent target color; and anupdating step to update the starting color value based on which regioncontains the device independent target color.
 25. A computer-readablemedium according to claim 24, wherein said determining step comprisessteps to obtain dot products for each normal plane vector that definesthe multiple regions with the vector that defines the difference betweenthe target color and the device independent color corresponding to thestarting color, and to determine which region contains the deviceindependent target color in accordance with which of the dot productsyields positive values and which yields negative values.
 26. Acomputer-readable medium according to claim 22, wherein the deviceindependent color space is CIEXYZ or CIELAB color space, and wherein thedevice dependent color space is CMY or CMYK color space.
 27. Acomputer-readable medium according to claim 22, wherein the forwardmodel look-up table is derived by steps to print color patchescorresponding to predefined colors in device dependent color space, andto measure the colors of the patches in device independent color space.28. A computer-readable medium according to claim 22, wherein thepredefined colors are in CMY or CMYK space, and the colors are measuredin CIEXYZ or CIELAB space.
 29. An apparatus for deriving a reverse modellook-up table whose entries represent device dependent colors as afunction of device independent colors, based on a forward model look-uptable whose entries represent device independent colors obtained inresponse to printout of corresponding device dependent color components,wherein the forward model and the reverse model look-up tables bothcomprise a grid of cells in their respective color spaces with entriesat each grid point of the grid, the apparatus comprising: a memoryincluding a region for storing the forward model look-up table, a regionfor storing the reverse model look-up table, and a region for storingexecutable process steps; and a processor for executing the executableprocess steps; wherein the executable process steps include thefollowing steps to determine an entry in the reverse model look-up tablefor a device independent target color: (a) performing a binary search ofthe forward model look-up table to locate a cell that contains thedevice independent target color, (b) interpolating entries from theforward model look-up table at grid points that define the cell so as toobtain device dependent colors corresponding to the device independenttarget color, and (c) storing the device dependent color at the gridpoint of the reverse model look-up table for the device independenttarget color.
 30. An apparatus according to claim 29, wherein said stepof performing a binary search comprises iterated steps starting from astarting color value in device dependent color space, the iterated stepscomprising: dividing the device independent color space into multipleregions defined by device independent colors corresponding to smallvariations from the starting color in device dependent color space;determining which of the multiple regions contains the deviceindependent target color; and updating the starting color value based onwhich region contains the device independent target color.